//app.js
import config from 'config/b.core' // 域名配置项
import codeConfig from './service/code_config.js' // 请求返回码配置
import userApi from './service/userApi'

App({
  onLaunch: function () {
    let that = this
    // 获取用户授权信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          this.globalData.hadAuthUserInfo = true
          this.readyLogin()
        } else {
          this.globalData.hadAuthUserInfo = false
        }
      }
    })
  },
  // 先调用 Wechat 登录
  readyLogin() {
    var that = this
    // 登录
    wx.login({
      success: resp => {
        // 发送 resp.code 到后台换取 openId, sessionKey, unionId
        // console.log(resp);
        wx.getUserInfo({
          withCredentials: true,
          success: userInfoRes => {
            console.log(userInfoRes)
            that.globalData.userInfo = {...userInfoRes.userInfo}
            var params = {
              wxCode: resp.code,
              wxEncryptedData: userInfoRes.encryptedData || '',
              iv: userInfoRes.iv || ''
            }
            that.login(params)
          }
        })
      }
    })
  },
  globalData: {
    userInfo: null,
    hadAuthUserInfo: false,
    config: config,
    codeConfig,
    searchKeyRecommend: '搜索', // 推荐搜索热门关键词
    refreshIndexFlag: false,
    address: {}, // 订单收货地址
    couponInfo: {},
    picBaseUrl: 'https://img-youpin.bumeng.cn/images',
    isSelectCoupon: false,
    userToken: '',
    groupId: '',
    sendGiftData: {}, // 赠送礼物数据
    getGiftData: {}, // 接受礼物数据
    receiveCouponStatus: '', // 领取的优惠券是否过期
    sendGiftOverBackData: '', // 赠送完礼物返回券包所带的参数
    buyGoodsToCouponBag: false, // 购买完商品是否去提货券页面的已提货页面
  },
  login (params) {
    var that = this
    userApi.login(params).then((res) => {
      if (res.data.errCode == that.globalData.codeConfig.errCode.SUCCESS_CODE) {
        wx.setStorageSync('token', res.data.data.userToken);
        // 因为登录为异步请求，可能执行到此处时，page.onload已经执行，而此时还未做用户状态检查，所以以callback的形式保证先检查
        that.globalData.userToken = res.data.data.userToken;
        if (that.checkStatusCallback) {
          that.checkStatusCallback(res.data.data);
        } else {
          // onload 未执行，存下 talentID
          if (res.data.data.talentId) {
            wx.setStorageSync('talentId', res.data.data.talentId)
          }
        }
      } else {
        wx.showToast({
          title: data.data.msg,
          icon: 'none',
          duration: 1500
        })
      }
    }).catch((res) => {
      console.log(res)
      wx.showToast({
        title: '网络错误',
        icon: 'none',
        duration: 1500
      })
    })
  }
})